package com.etone.smartAudit.task;

import com.etone.smartAudit.service.ServerInfoService;
import com.etone.smartAudit.utils.DateUtil;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Calendar;
import java.util.Date;

/**
 * @author: sovy
 * @date: 2020/9/27
 * @description:
 */
@Component
@Log4j2
public class ServerInfoTask {

    @Value("${audit.task.enable:false}")
    private Boolean enableTask;

    @Autowired
    private ServerInfoService serverInfoService;

    /**
     * 每隔5分钟收集一次服务器信息
     */
    @Scheduled(cron = "0 0/5 * * * ?")
    public void collectServerInfo() {
        if (enableTask) {
            log.info("===========================开始查询收集服务器信息===========================");
            serverInfoService.doUpdateAllServerInfo();
            log.info("===========================查询收集服务器信息结束===========================");
        }

    }

    /**
     * 每天12点30清理一个月前的数据
     */
    @Scheduled(cron = "0 30 0 * * ?")
    public void cleanServerInfo() {
        if (enableTask) {
            log.info("===========================开始清理历史服务器信息===========================");
            serverInfoService.doCleanServerInfo(null, DateUtil.parseAddDate(new Date(), Calendar.DATE, -30));
            log.info("===========================清理历史服务器信息结束===========================");
        }
    }
}
